.nav-sidebar
  - can_edit = can?(current_user, :admin_project, @project)
  = link_to project_path(@project), title: 'Project', class: 'context-header' do
    .avatar-container.s40.project-avatar
      = project_icon(@project, alt: @project.name, class: 'avatar s40 avatar-tile')
    .project-title
      = @project.name
  %ul.sidebar-top-level-items
    = nav_link(path: ['projects#show', 'projects#activity', 'cycle_analytics#show'], html_options: { class: 'home' }) do
      = link_to project_path(@project), title: 'Project', class: 'shortcuts-project' do
        %span
          Project

      %ul.sidebar-sub-level-items
        = nav_link(path: 'projects#show') do
          = link_to project_path(@project), title: _('Project home'), class: 'shortcuts-project' do
            %span= _('Home')

        = nav_link(path: 'projects#activity') do
          = link_to activity_project_path(@project), title: _('Activity'), class: 'shortcuts-project-activity' do
            %span= _('Activity')

        - if can?(current_user, :read_cycle_analytics, @project)
          = nav_link(path: 'cycle_analytics#show') do
            = link_to project_cycle_analytics_path(@project), title: _('Cycle Analytics'), class: 'shortcuts-project-cycle-analytics' do
              %span= _('Cycle Analytics')

    - if project_nav_tab? :files
      = nav_link(controller: %w(tree blob blame edit_tree new_tree find_file commit commits compare projects/repositories tags branches releases graphs network)) do
        = link_to project_tree_path(@project), title: 'Repository',  class: 'shortcuts-tree' do
          %span
            Repository

        %ul.sidebar-sub-level-items
          = nav_link(controller: %w(tree blob blame edit_tree new_tree find_file)) do
            = link_to project_tree_path(@project) do
              #{ _('Files') }

          = nav_link(controller: [:commit, :commits]) do
            = link_to project_commits_path(@project, current_ref) do
              #{ _('Commits') }

          = nav_link(html_options: {class: branches_tab_class}) do
            = link_to project_branches_path(@project) do
              #{ _('Branches') }

          = nav_link(controller: [:tags, :releases]) do
            = link_to project_tags_path(@project) do
              #{ _('Tags') }

          = nav_link(path: 'graphs#show') do
            = link_to project_graph_path(@project, current_ref) do
              #{ _('Contributors') }

          = nav_link(controller: %w(network)) do
            = link_to project_network_path(@project, current_ref) do
              #{ s_('ProjectNetworkGraph|Graph') }

          = nav_link(controller: :compare) do
            = link_to project_compare_index_path(@project, from: @repository.root_ref, to: current_ref) do
              #{ _('Compare') }

          = nav_link(path: 'graphs#charts') do
            = link_to charts_project_graph_path(@project, current_ref) do
              #{ _('Charts') }

    - if project_nav_tab? :container_registry
      = nav_link(controller: %w[projects/registry/repositories]) do
        = link_to project_container_registry_index_path(@project), title: 'Container Registry', class: 'shortcuts-container-registry' do
          %span
            Registry

    - if project_nav_tab? :issues
      = nav_link(controller: @project.default_issues_tracker? ? [:issues, :labels, :milestones, :boards] : :issues) do
        = link_to project_issues_path(@project), title: 'Issues', class: 'shortcuts-issues' do
          %span
            Issues
            - if @project.default_issues_tracker?
              %span.badge.count.issue_counter= number_with_delimiter(IssuesFinder.new(current_user, project_id: @project.id).execute.opened.count)

        %ul.sidebar-sub-level-items
          - if project_nav_tab?(:issues) && !current_controller?(:merge_requests)
            = nav_link(controller: :issues) do
              = link_to project_issues_path(@project), title: 'Issues' do
                %span
                  List

            = nav_link(controller: :boards) do
              = link_to project_boards_path(@project), title: 'Board' do
                %span
                  Board

          - if project_nav_tab?(:merge_requests) && current_controller?(:merge_requests)
            = nav_link(controller: :merge_requests) do
              = link_to project_merge_requests_path(@project), title: 'Merge Requests' do
                %span
                  Merge Requests

          - if project_nav_tab? :labels
            = nav_link(controller: :labels) do
              = link_to project_labels_path(@project), title: 'Labels' do
                %span
                  Labels

          - if project_nav_tab? :milestones
            = nav_link(controller: :milestones) do
              = link_to project_milestones_path(@project), title: 'Milestones' do
                %span
                  Milestones

    - if project_nav_tab? :merge_requests
      = nav_link(controller: @project.default_issues_tracker? ? :merge_requests : [:merge_requests, :labels, :milestones]) do
        = link_to project_merge_requests_path(@project), title: 'Merge Requests', class: 'shortcuts-merge_requests' do
          %span
            Merge Requests
            %span.badge.count.merge_counter.js-merge-counter= number_with_delimiter(MergeRequestsFinder.new(current_user, project_id: @project.id).execute.opened.count)

    - if project_nav_tab? :pipelines
      = nav_link(controller: [:pipelines, :builds, :jobs, :pipeline_schedules, :environments, :artifacts]) do
        = link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do
          %span
            Pipelines

        %ul.sidebar-sub-level-items
          - if project_nav_tab? :pipelines
            = nav_link(path: ['pipelines#index', 'pipelines#show']) do
              = link_to project_pipelines_path(@project), title: 'Pipelines', class: 'shortcuts-pipelines' do
                %span
                  Pipelines

          - if project_nav_tab? :builds
            = nav_link(controller: [:jobs, :artifacts]) do
              = link_to project_jobs_path(@project), title: 'Jobs', class: 'shortcuts-builds' do
                %span
                  Jobs

          - if project_nav_tab? :pipelines
            = nav_link(controller: :pipeline_schedules) do
              = link_to pipeline_schedules_path(@project), title: 'Schedules', class: 'shortcuts-builds' do
                %span
                  Schedules

          - if project_nav_tab? :environments
            = nav_link(controller: :environments) do
              = link_to project_environments_path(@project), title: 'Environments', class: 'shortcuts-environments' do
                %span
                  Environments

          - if @project.feature_available?(:builds, current_user) && !@project.empty_repo?
            = nav_link(path: 'pipelines#charts') do
              = link_to charts_project_pipelines_path(@project), title: 'Charts', class: 'shortcuts-pipelines-charts' do
                %span
                  Charts

    - if project_nav_tab? :wiki
      = nav_link(controller: :wikis) do
        = link_to get_project_wiki_path(@project), title: 'Wiki', class: 'shortcuts-wiki' do
          %span
            Wiki

    - if project_nav_tab? :snippets
      = nav_link(controller: :snippets) do
        = link_to project_snippets_path(@project), title: 'Snippets', class: 'shortcuts-snippets' do
          %span
            Snippets

    - if project_nav_tab? :settings
      = nav_link(path: %w[projects#edit members#show integrations#show services#edit repository#show ci_cd#show pages#show]) do
        = link_to edit_project_path(@project), title: 'Settings', class: 'shortcuts-tree' do
          %span
            Settings

        %ul.sidebar-sub-level-items
          - can_edit = can?(current_user, :admin_project, @project)
          - if can_edit
            = nav_link(controller: :projects) do
              = link_to edit_project_path(@project), title: 'General' do
                %span
                  General
          = nav_link(controller: :members) do
            = link_to project_settings_members_path(@project), title: 'Members' do
              %span
                Members
          - if can_edit
            = nav_link(controller: [:integrations, :services, :hooks, :hook_logs]) do
              = link_to project_settings_integrations_path(@project), title: 'Integrations' do
                %span
                  Integrations
            = nav_link(controller: :repository) do
              = link_to project_settings_repository_path(@project), title: 'Repository' do
                %span
                  Repository
            - if @project.feature_available?(:builds, current_user)
              = nav_link(controller: :ci_cd) do
                = link_to project_settings_ci_cd_path(@project), title: 'Pipelines' do
                  %span
                    Pipelines
            - if Gitlab.config.pages.enabled
              = nav_link(controller: :pages) do
                = link_to project_pages_path(@project), title: 'Pages' do
                  %span
                    Pages

    - else
      = nav_link(path: %w[members#show]) do
        = link_to project_settings_members_path(@project), title: 'Settings', class: 'shortcuts-tree' do
          %span
            Settings

    -# Shortcut to Project > Activity
    %li.hidden
      = link_to activity_project_path(@project), title: 'Activity', class: 'shortcuts-project-activity' do
        %span
          Activity

    -# Shortcut to Repository > Graph (formerly, Network)
    - if project_nav_tab? :network
      %li.hidden
        = link_to project_network_path(@project, current_ref), title: 'Network', class: 'shortcuts-network' do
          Graph

    -# Shortcut to Repository > Charts (formerly, top-nav item "Graphs")
    - unless @project.empty_repo?
      %li.hidden
        = link_to charts_project_graph_path(@project, current_ref), title: 'Charts', class: 'shortcuts-repository-charts' do
          Charts

    -# Shortcut to Issues > New Issue
    %li.hidden
      = link_to new_project_issue_path(@project), class: 'shortcuts-new-issue' do
        Create a new issue

    -# Shortcut to Pipelines > Jobs
    - if project_nav_tab? :builds
      %li.hidden
        = link_to project_jobs_path(@project), title: 'Jobs', class: 'shortcuts-builds' do
          Jobs

    -# Shortcut to commits page
    - if project_nav_tab? :commits
      %li.hidden
        = link_to project_commits_path(@project), title: 'Commits', class: 'shortcuts-commits' do
          Commits

    -# Shortcut to issue boards
    %li.hidden
      = link_to 'Issue Boards', project_boards_path(@project), title: 'Issue Boards', class: 'shortcuts-issue-boards'
